开发者说 | Apollo仿真环境搭建傻瓜教程
无人驾驶的仿真可以把现实中路跑中的某一段路记录下来,按场景做切分,会切分成许多段。
在红绿灯场景、障碍物场景、U型拐弯场景、斑马线场景中,按场景切分好之后可以适配自己的算法,把自己的算法拿到这些场景上跑,跑完之后仿真平台会给出报告。
报告里会反映是否到达目的地,是否发生碰撞,是否有红绿灯的异常情况等信息。
以下是Apollo社区开发者张学军在知乎上分享的《百度无人驾驶Apollo仿真环境搭建的新手傻瓜教程》,感谢他为我们在仿真环境搭建这一步所做的详细教程。
如果你是萌新开发者,可能要浪费很多的时间才能搞定仿真环境搭建。本文将省却你的苦功,从零开始,一步一步,手把手地教你搭建出你的第一个自动驾驶的仿真环境。
Apollo仿真环境搭建必须要具备以下四个条件,如果不具备,就不必往下进行。
查看你的CPU是否支持FMA和AVX,否则仿真环境Dreamview无法启动(当在浏览器中输入http://localhos:8888,会出现"Unable to connect"的错误)。
浏览器必须支持WebGL,否则仿真界面无法显示动画,这实际上隐含了对GPU的要求,可以不是Nvidia的,但要有。百度提供的仅有CPU的编译选项,只是水中花、镜中月。
必须要有CAN卡的驱动程序,因为这个驱动程序不是开源的,需要你购买硬件时才能提供,虽然只用到了其中的两个文件。
硬盘至少50G,内存至少4G。
具备以上四个条件以后,我们就可以按照下面的步骤开始搭建Apollo仿真环境。
一、安装基础操作系统
安装方法参考 Ubuntu 16.04安装及配置过程中涉及的主要内容。
后面用***代表
无论是Firefox还是Chrome,都要打开对WebGL的支持, 否则Dreamview只有黑色窗口,不显示车和路的动画。
输入以下命令:
1$ sudo apt-get update
2$ wget https://dl.google.com/linux/direct/google.chrome-stable_current_amd64.deb
3$ sudo dpkg -i google-chrome-stable_current_amd64.deb
Step 5 解决无法启动的问题
用以下命令解决chrome在ubuntu14.04安装后无法启动的问题:
$ sudo apt install --reinstall libness3
Step 6 安装Google拼音输入法
1$ sudo apt-get install ibus-googlepinyin;
2Log out
System setting---》Text Entry---》搜索"googlepin", 并添加。
1$ ubuntu-drivers devices;
2$ sudo apt install nvidia-340 (安装指定版本)
Step 9 重启系统
$ nvidia-smi (查看当前驱动版本号)
若不装Nvidia driver, 运行
bash docker/scripts/dev_start.sh 报错。
但不影响后续进程。
二、安装git
$ sudo apt-get install git
下载Apollo源码
$ git clone https://github.com/ApolloAuto/apollo.git
若下载指定版本则用以下命令:
$ git clone https://github.com/ApolloAuto/apollo.git
三、安装Docker CE环境
1$ sudo apt-get update
2
3$ sudo apt-get install \
4apt-transport-https \
5ca-certificates \
6curl \
7software-properties-common
8
9$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
10$ sudo apt-key fingerprint 0EBFCD88
11
12$ sudo add-apt-repository \
13"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
14$(lsb_release -cs) \
15stable"
16
17$ sudo apt-get update
18
19$ sudo apt-get install docker-ce=17.03.1~ce-0~ubuntu-trusty
把你的用户名加入到docker 中,这样使用docker时无需再输入sudo.
1$ sudo groupadd docker
2$ sudo usermod -aG docker *** (你的用户名)
3Log out
然后重新进入系统,让刚才的命令生效。
$ docker run hello-world
这时不用sudo,命令仍能执行,说明安装成功。
四、下载Apollo依赖环境的image文件
1$ cd apollo
2(转到apollo文件夹下,这时的命令窗口会显示前缀 ***@你的计算机名:~/apollo$ )
3
4$ bash docker/scripts/dev_start.sh
若从国内下载image, 使用
bash docker/scripts/dev_start.sh-C
速度较快,总共10G左右。
下载成功后,最好导出镜像到本地文件,并备份到移动硬盘上,方法见文末。作为新手,难免需要重装几次的。
当装的不是Nvidia显卡时,会提示“modprobe: FATAL: Module nvidia not found"的错误信息, 不必在意。
五、进入Docker环境
$ bash docker/scripts/dev_into.sh
这时命令窗口显示前缀的方式会发生改变:
***@in_dev_docker:/apollo$
六、安装ESD CAN library
这个步骤只需执行一次。
在/home/***/apollo/third_party/
can_card_library/esd_can/目录下,而且要在Docker环境下***@in_dev_docker
七、建立两个新目录include和lib
$ mkdir include
$ mkdir lib
八、拷贝两个文件
把 ntcan.h 拷贝到 include/
把64-bit的libntcan.so.4.0.1 拷贝到 lib/
九、进行符号连接
1$ cd./lib/;
2$ ln -s libntcan.so.4.0.1 libntcan.so.4;
3$ ln -s libntcan.so.4.0.1 libntcan.so.4.0
十、编译apollo
$ bash apollo.sh clean
需重新编译时,才会用到该命令。
$ bash apollo.sh build
不是Nvidia GPU也是可以的。不建议使用 bash apollo.sh build_cpu来编译。
十一、启动仿真环境Dreamview
$ bash scripts/bootstrap.sh
有时这步会报错。不要灰心,关掉当前terminal,新开一个terminal并把本节命令执行一遍,就会成功。具体原因未知。
典型的出错信息是:
sampled_right_width_[0.787094] is too small. It should be larger than half vehicle width
十二、启动rosbag
1$ sudo python docs/demo_guide/rosbag_helper.py demo_2.0.bag
2$ rosbag play demo_2.0.bag --loop
十三、打开Chrome
输入http://localhost:8888, 这时你就可以看到仿真窗口了。
Module Controller--->打开Planning和Routing;
Tasks--->打开SimControl
自Apollo平台开放已来,我们收到了大量开发者的咨询和反馈,越来越多开发者基于Apollo擦出了更多的火花,并愿意将自己的成果贡献出来,这充分体现了Apollo『贡献越多,获得越多』的开源精神。为此我们开设了『开发者说』板块,希望开发者们能够踊跃投稿,更好地为广大自动驾驶开发者营造一个共享交流的平台!
* 以上内容为开发者原创,不代表百度官方言论。
已获开发者授权,原文地址请戳阅读原文。
﹏﹏﹏﹏﹏ END ﹏﹏﹏﹏﹏